/*
*
* ProductChannelGoodsPriceMapper.java
* @author Administrator
* @date 2020-01-09 17:40:34
*/
package com.steel.yfmall.cloud.assistant.goods.mapper;

import com.steel.yfmall.cloud.assistant.po.goods.ProductChannelGoodsPrice;
import com.steel.yfmall.cloud.assistant.po.goods.ProductChannelGoodsPriceExample;
import com.steel.yfmall.cloud.components.utils.datasource.ReadOnly;
import com.steel.yfmall.cloud.components.utils.datasource.Writer;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ProductChannelGoodsPriceMapper {
    /**
     * 根据指定的条件获取数据库记录数:product_channel_goods_price
     * @Title: countByExample
     * @Description: ( 根据指定的条件获取数据库记录数 )
     * @param 参数说明 类型:ProductChannelGoodsPriceExample	名称:example
     * @return 返回类型 long
     * @date 2020-01-09 17:40:34
     */
    @ReadOnly
    long countByExample(ProductChannelGoodsPriceExample example);

    /**
     * 根据指定的条件删除数据库符合条件的记录:product_channel_goods_price
     * @Title: deleteByExample
     * @Description: ( 根据指定的条件删除数据库符合条件的记录 )
     * @param 参数说明 类型:ProductChannelGoodsPriceExample	名称:example
     * @return 返回类型 int
     * @date 2020-01-09 17:40:34
     */
    @Writer
    int deleteByExample(ProductChannelGoodsPriceExample example);

    /**
     * 根据主键删除数据库的记录:product_channel_goods_price
     * @Title: deleteByPrimaryKey
     * @Description: ( 根据主键删除数据库的记录 )
     * @param 参数说明 类型:Integer	名称:id
     * @return 返回类型 int
     * @date 2020-01-09 17:40:34
     */
    @Writer
    int deleteByPrimaryKey(Integer id);

    /**
     * 新写入数据库记录:product_channel_goods_price
     * @Title: insert
     * @Description: ( 新写入数据库记录 )
     * @param 参数说明 类型:ProductChannelGoodsPrice	名称:record
     * @return 返回类型 int
     * @date 2020-01-09 17:40:34
     */
    @Writer
    int insert(ProductChannelGoodsPrice record);

    /**
     * 动态字段,写入数据库记录:product_channel_goods_price
     * @Title: insertSelective
     * @Description: ( 动态字段,写入数据库记录 )
     * @param 参数说明 类型:ProductChannelGoodsPrice	名称:record
     * @return 返回类型 int
     * @date 2020-01-09 17:40:34
     */
    @Writer
    int insertSelective(ProductChannelGoodsPrice record);

    /**
     * 根据指定的条件查询符合条件的数据库记录:product_channel_goods_price
     * @Title: selectByExample
     * @Description: ( 根据指定的条件查询符合条件的数据库记录 )
     * @param 参数说明 类型:ProductChannelGoodsPriceExample	名称:example
     * @return 返回类型 java.util.List<com.steel.yfmall.cloud.product.po.ProductChannelGoodsPrice>
     * @date 2020-01-09 17:40:34
     */
    @ReadOnly
    List<ProductChannelGoodsPrice> selectByExample(ProductChannelGoodsPriceExample example);

    /**
     * 根据指定主键获取一条数据库记录:product_channel_goods_price
     * @Title: selectByPrimaryKey
     * @Description: ( 根据指定主键获取一条数据库记录 )
     * @param 参数说明 类型:Integer	名称:id
     * @return 返回类型 com.steel.yfmall.cloud.product.po.ProductChannelGoodsPrice
     * @date 2020-01-09 17:40:34
     */
    @ReadOnly
    ProductChannelGoodsPrice selectByPrimaryKey(Integer id);

    /**
     * 动态根据指定的条件来更新符合条件的数据库记录:product_channel_goods_price
     * @Title: updateByExampleSelective
     * @Description: ( 动态根据指定的条件来更新符合条件的数据库记录 )
     * @param 参数说明 类型:ProductChannelGoodsPrice	名称:record
     * @param 参数说明 类型:ProductChannelGoodsPriceExample	名称:example
     * @return 返回类型 int
     * @date 2020-01-09 17:40:34
     */
    @Writer
    int updateByExampleSelective(@Param("record") ProductChannelGoodsPrice record, @Param("example") ProductChannelGoodsPriceExample example);

    /**
     * 根据指定的条件来更新符合条件的数据库记录:product_channel_goods_price
     * @Title: updateByExample
     * @Description: ( 根据指定的条件来更新符合条件的数据库记录 )
     * @param 参数说明 类型:ProductChannelGoodsPrice	名称:record
     * @param 参数说明 类型:ProductChannelGoodsPriceExample	名称:example
     * @return 返回类型 int
     * @date 2020-01-09 17:40:34
     */
    @Writer
    int updateByExample(@Param("record") ProductChannelGoodsPrice record, @Param("example") ProductChannelGoodsPriceExample example);

    /**
     * 动态字段,根据主键来更新符合条件的数据库记录:product_channel_goods_price
     * @Title: updateByPrimaryKeySelective
     * @Description: ( 动态字段,根据主键来更新符合条件的数据库记录 )
     * @param 参数说明 类型:ProductChannelGoodsPrice	名称:record
     * @return 返回类型 int
     * @date 2020-01-09 17:40:34
     */
    @Writer
    int updateByPrimaryKeySelective(ProductChannelGoodsPrice record);

    /**
     * 根据主键来更新符合条件的数据库记录:product_channel_goods_price
     * @Title: updateByPrimaryKey
     * @Description: ( 根据主键来更新符合条件的数据库记录 )
     * @param 参数说明 类型:ProductChannelGoodsPrice	名称:record
     * @return 返回类型 int
     * @date 2020-01-09 17:40:34
     */
    @Writer
    int updateByPrimaryKey(ProductChannelGoodsPrice record);

    @Writer
    int batchInsertByList(List<ProductChannelGoodsPrice> recordList);

    @ReadOnly
    ProductChannelGoodsPrice selectOneByExampleSelective(ProductChannelGoodsPriceExample example);




    /**
     * 根据product_sys_code和channel_code查询渠道商品价格
     *
     * @param map
     * @return
     */
    @ReadOnly
    List<ProductChannelGoodsPrice> selectChannelGoodsPriceByParams(Map<String, Object> map);

    /**
     * 批量查询渠道商品价格
     * @param map
     * @return
     */
    @ReadOnly
    List<ProductChannelGoodsPrice> selectBatchChannelGoodsPrice(Map<String, Object> map);


}
